/**
 * Created by Administrator on 2017/5/4 0004.
 */

//创建核心对象
function createXHR(){
    if(window.XMLHttpRequest){
        return new XMLHttpRequest();
    }
    return new ActiveXObject("Microsoft.XMLHTTP");
}

/*
 *   get   同步 异步
 *   post  同步 异步
 *
 * */


function Ajax(json) {
    var xhr =new createXHR();// 创建核心对象
    if(json.type=="get"){
        //我们就让 url地址传值
        //http://xxxx.com?uname=周杰&pwd=123
        xhr.open(json.type,json.url+"?"+param(json.data),json.async);
        xhr.send(null);
    }else{
        //否则就请求体传值  post 不需要url地址传值

        xhr.open(json.type,json.url,json.async);
        //如果是post请求，必须加上这样的一句话，在请求头，模拟表单的格式。
        xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xhr.send(param(json.data))
    }

    //2.同步与异步的处理
    if(json.async==false){
        // 同步
        if(xhr.status==200){
            var result="";  //用于接受结果
            // 返回到浏览的数据格式
            if(json.dataType=="json"){
                result= JSON.parse(xhr.responseText)
            }else if(json.dataType=="text"){
                result=xhr.responseText
            }else if(json.dataType=="xml"){
                result=xhr.responseXML
            }else{
                //默认返回json格式
                result= JSON.parse(xhr.responseText)
            }
            if(json.success){
                json.success(result);// 最后把结果返回出去。利用回调函数
            }
        }

    }else{
        //异步
        xhr.onreadystatechange=function () {
            if(xhr.readyState==4){
                if(xhr.status==200){
                    var result="";  //用于接受结果
                    // 返回到浏览的数据格式
                    if(json.dataType=="json"){
                        result= JSON.parse(xhr.responseText)
                    }else if(json.dataType=="text"){
                        result=  xhr.responseText
                    }else if(json.dataType=="xml"){
                        result=  xhr.responseXML
                    }else{
                        //默认返回json格式
                        result= JSON.parse(xhr.responseText)
                    }
                    if(json.success){
                        json.success(result);// 最后把结果返回出去。利用回调函数
                    }
                }

            }
        }

    }

}

//把对象转成 字符串 ?uname=周杰&pwd=123
// obj 就是 {uname:"周杰伦",pwd:"123"}
function param(obj) {
    var str="";
    for (var key in obj) {
        str+=key+"="+obj[key]+"&";
    }

    return str;

}


//  LoginName="admin",string LoginPwd="123"
// ajax({
//     type:"get",
//     url:"http://10.36.132.104/userinfo/getLogin",
//     async:false,
//     dataType:"json",
//     data:{LoginName:"123",LoginPwd:"123"},
//     success:function (result) {
//         console.log(result);
//     }
//
// })